package com.panda.mall.common.mallOrder.entity;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panda.mall.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
* 订单支付表
* mall_order_pay
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("mall_order_pay")
public class MallOrderPay extends BaseEntity implements Serializable {

    /**
    * 支付信息id
    */
    @NotNull(message="[支付信息id]不能为空")
    @ApiModelProperty("支付信息id")
    private Long id;
    /**
    * 订单编号
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("订单编号")
    @Length(max= 40,message="编码长度不能超过40")
    private String orderNumber;
    /**
    * 支付宝交易流水号
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("支付宝交易流水号")
    @Length(max= 40,message="编码长度不能超过40")
    private String alipayNumber;
    /**
    * 支付总金额
    */
    @ApiModelProperty("支付总金额")
    private BigDecimal totalPrice;
    /**
    * 交易内容
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("交易内容")
    @Length(max= 500,message="编码长度不能超过500")
    private String subject;
    /**
    * 支付状态（0-待支付，1-已支付）
    */
    @ApiModelProperty("支付状态（0-待支付，1-已支付）")
    private Integer payStatus;
    /**
    * 支付时间
    */
    @ApiModelProperty("支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;
    /**
    * 回调内容
    */
    @Size(max= 500,message="编码长度不能超过500")
    @ApiModelProperty("回调内容")
    @Length(max= 500,message="编码长度不能超过500")
    private String callbackContent;
    /**
    * 回调时间
    */
    @ApiModelProperty("回调时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date callbackTime;

}
